The present invention is directed to the administration of a computer network, particularly the administration of a network of servers, and provides a dynamic method of effecting change to the configuration of the servers.
Administering a large number of servers, such as database servers, in a distributed database system is a complex task comprising several dimensions.
One dimension of administrative complexity is the sheer magnitude of administered servers. That is, complexity is inherent in keeping track of, and dealing with, a great many things. When each such managed entity possesses unique characteristics or attributes, another layer of complexity, the second dimension, is introduced. Such identifying characteristics can be considered static in nature. That is, they define the managed entity, e.g. a network address, and tend not to change over time. However, there are states of operation or configuration that are dynamic, e.g., creating, modifying, or deleting database objects managed by a server. That is, the act of administration will move a server from one state of configuration to the next. Indeed, non-administrative acts can alter the configuration of a server, sometimes rendering it""s state. unknown or unusable. This aspect of administrative complexity is the third dimension.
The administration of large numbers of servers, the configurations of which begin, and must remain xe2x80x9csimilarxe2x80x9d, is a very difficult and complex task. Each administered server is assumed to operate independently from all other similarly-configured, administered servers. (The set of all similarly-configured, administered servers which will be managed collectively will be referred to as a xe2x80x9cgroupxe2x80x9d.) That is, each administered server will be engaged in its responsibilities independently of the other group members, and thus require a maintenance window that need not coincide with any other member""s maintenance window. (A maintenance window is the period of time during which maintenance activities may be performed against an administered server such that mainline, core business responsibilities are not impacted.) Consequently, at any given time each administered server can be in a state of configuration that is similar to only a few other group members. In fact, it may not be similar to any others. Given the large numbers of administered servers in the group that must be managed, this implies there are a great many different states of configuration outstanding at any given time. These are very difficult circumstances under which administration must take place.
All administered servers are grouped together because of their similarity in configuration. That is, their configurations are identical for those aspects of configuration which are subject to group administration. For example, group administrative activities may be restricted to the maintenance of a DBMS server configuration, and not the Operating System upon which the DBMS executes. In this case, all servers which run a DBMS of a particular configuration are grouped together for the purposes of maintaining that configuration. In other words, there is a single group configuration that each server within the group must use. However, that single configuration will necessarily change over time as requirements and demands change. Unfortunately, if you combine the changing group configuration with the difficulties of managing the large numbers of administered servers in the group as indicate above, you can have many administered servers which are in various states of consistency within the group configuration. Essentially, you have many independent servers attempting to become consistent with a moving target according to an independent schedule.
It is, therefore, an objective of the present invention to provide a system and method for dynamic and flexible administration of a plurality of servers.
The present invention provides for the simplification of server administration in this complex environment by controlling each dimension in a systematic way. First, the complexity embodied by the first two dimensions can be characterized as the difficulty in managing large numbers of different things. In a sense, this is the static aspect of administrationxe2x80x94accounting for, and awareness of, all the many entities under management. Second, which is the dynamic aspect of management, is concerned with affecting change to the configuration or state of each of the many managed entities. Although the managed entities are not identical, it is assumed there exist collections of different entities which share xe2x80x9csimilarxe2x80x9d configurations. In this way, grouping can be used to reduce the many to a few. By managing a group of similarly configured servers, instead of managing each individual server, complexity is reduced. The invention provides a system and method for effecting a change of state to a group of a large number of similarly-configured, but not necessarily identical, managed entities in a controlled, simplified way.
In order to reduce the administrative complexity inherent in managing large numbers of similarly-configured servers, as described above, a model, controls, and mechanism are required for the specification, deployment, and maintenance of the single, group-level configuration such that:
1. There exists a single, well-defined definition of the initial group state, and all subsequent changes to the initial state given as incremental modifications. That is, the group state, to which all administered servers must be consistent, must have a well-defined beginning and evolution.
2. Once the group-state is well-defined, there must exist a mechanism and controls for ensuring all group members are consistent with the group state, or have a trackable and enforceable means of achieving consistency over time. The latter requirement addresses the reality of independent group members, each of which can have their own schedules for attaining consistency with the group, particularly given that group consistency is a moving target.
The act of altering an administered server""s configuration or state for the purpose of moving toward consistency with its group-level configuration, as described in (2) above, is called xe2x80x9csynchronizationxe2x80x9d. For a fixed group state, given sufficient time and opportunity for all members to synchronize, all members will achieve group steady state. That is, all servers begin in the same initial state, and will end up in the same final state given sufficient time and opportunity to synchronize with a new group state. The definition of the initial state, and the evolutionary path required to get to the new group state, is captured by requirement (1) above, whereas the mechanism that takes group members along the correct evolutionary path from initial to final states is captured by requirement (2) above.
The invention provides a solution to the above-noted problem by providing a method and apparatus, preferably in software form, for use in an information handling network having an administrative control server and a number of administered servers that are members of the network and are managed by the control server, of providing maintenance of the administered servers for maintaining conformity of configuration of each of the administered servers to a predetermined configuration for all administered servers of the network while permitting evolution of the predetermined configuration from an initial network member configuration to a current network member configuration to which each of the administered servers is to conform, the method including: evolving, as required, the configuration of each administered server from its current configuration state to the current network member configuration in the following steps: initiating communication, by an administered server, of identification information to the control server identifying the administered server; verifying by the control server whether the administered server is a member of the network managed by the control server, and if it is so managed, then; determining by the control server whether the administered server configuration requires evolution to the current network member configuration; and, if evolution is required by the administered server, then the control server determines what commands are required to evolve the administered server configuration to the current network member configuration; the control server communicates the required commands to the administered server; the administered server executes the required commands to evolve its configuration to the current network member configuration; and the administered server communicates results of the execution of the commands to the control server identifying whether its configuration was successfully evolved to the current network member configuration.
Another aspect of the invention provides a computer program product including storage means and instructions stored thereon for use in an information handling network including an administrative control server and a plurality of administered servers that are members of the network and are managed by the control server, a method of providing for maintenance of the administered servers for maintaining conformity of configuration of each of the administered servers to a predetermined configuration for all administered servers of the network while permitting evolution of the predetermined configuration from an initial network member configuration to a current network member configuration to which each of the administered servers is to conform, the instructions including program routines for evolving, as required, the configuration of each administered server from its current configuration state to the current network member configuration in the following steps:
initiating communication, by an administered server, of identification information to the control server identifying the administered server; verifying by the control server whether the administered server is a member of the network managed by the control server, and if it is so managed, then,
determining by the control server whether the administered server configuration requires evolution to the current network member configuration, and; if evolution is required by the administered server, then the control server determines what commands are required to evolve the administered server configuration to the current network member configuration; the control server communicates the required commands to the administered server; the administered server executes the required commands to evolve its configuration to the current network member configuration; and the administered server communicates results of the execution of the commands to the control server identifying whether its configuration was successfully evolved to the current network member configuration.